# -*- coding: utf-8 -*-
"""
计算给定序列的斜率
要求：序列已经按照时间从远到近排序
"""
from sklearn.linear_model import LinearRegression


def coe_n(series, n):
    '''计算给定series的斜率。要求series已经排序。
    n表示数据量，因为有时候series很长，而实际需要的数据量不需要那么多'''
    if len(series)<n:
        print('数据量不满足要求的%d，请核查...'%n)
        return 999
    # 分拆x，y的数据,注意，要转成列向量
    series2 = series[-n:]
    series2.index = range(1,len(series2)+1)
    x = [[x] for x in series2.index]  # 转成列向量
    y = [[y] for y in series2]  # 转成列向量
    # 拟合模型
    model = LinearRegression()
    model.fit(x, y)
    # 返回斜率
    coe = model.coef_[0][0]
    # 返回截距
    # intercept = model.intercept_[0]
    return coe
    


